package com.wicket.okrbff.biz.service.dto.common;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;
import java.util.Objects;

/**
 * @desc BffTaskDataDto
 * @使用场景
 */
@Data
public class BffTaskDataDto implements Serializable {

  /**
   * 任务ID
   */
  @ApiModelProperty("任务ID")
  private String taskId;

  /**
   * 任务名称
   */
  @ApiModelProperty("任务名称")
  private String taskName;

  /**
   * 冗余最新进度
   */
  @ApiModelProperty("冗余最新进度")
  private Double percentageProgress;
/**
     * 前端状态时间 
     */
    @ApiModelProperty("前端状态时间")
    private Long	 deflectionTime;
/**
     * 总时长 
     */
    @ApiModelProperty("总时长")
    private Long	 totalLength;
/**
     * 创建时间 
     */
    @ApiModelProperty("创建时间")
    private Date	 createTime;
/**
     * 内容冗余状态 EDITING:草稿 TOBESIGN:待签收 ONGOING:进行中 FAILED:已失败 OVERDUE:逾期任务 NOT_AT_THE:未开始 UNCOMPLETED:未完成 COMPLETED:已完成 UNREPORTED:待汇报 EVA:评价中 AUDIT:审核中 EXPIRED:已逾期 SUCCESS:已成功 ENDED:已结束 UNLIMITED:不限 TOBEFILL:待填报 TOBEEVA:待评价
     */
    @ApiModelProperty("内容冗余状态")
    private String	 stateCode;

    /**
     * 周期名称 
     */
    @ApiModelProperty("周期名称")
    private String	 cycleStandardName;

    /**
     * 虚拟组织下部门ID 
     */
    @ApiModelProperty("虚拟组织下部门ID")
    private String	 deptId;

    /**
     * 部门简称 
     */
    @ApiModelProperty("部门简称")
    private String	 deptShortName;

    /**
     * 负责人就职记录ID 
     */
    @ApiModelProperty("负责人就职记录ID")
    private String	 personLiableInductionRecordId;

    /**
     * 负责人头像 
     */
    @ApiModelProperty("负责人头像")
    private String	 personLiableUserFace;

    /**
     * 负责人姓名 
     */
    @ApiModelProperty("负责人姓名")
    private String	 personLiableIdCardName;

    /**
     * 负责人昵称 
     */
    @ApiModelProperty("负责人昵称")
    private String	 personLiableNickName;

    /**
     * 主管就职记录ID 
     */
    @ApiModelProperty("主管就职记录ID")
    private String	 directorInductionRecordId;

    /**
     * 主管头像 
     */
    @ApiModelProperty("主管头像")
    private String	 directorUserFace;

    /**
     * 主管姓名 
     */
    @ApiModelProperty("主管姓名")
    private String	 directorIdCardName;

    /**
     * 主管昵称 
     */
    @ApiModelProperty("主管昵称")
    private String	 directorNickName;
@Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      BffTaskDataDto that = (BffTaskDataDto) o;
      return  taskId == that.taskId&&taskName == that.taskName&&percentageProgress == that.percentageProgress&&deflectionTime == that.deflectionTime&&totalLength == that.totalLength&&createTime == that.createTime&&stateCode == that.stateCode&&cycleStandardName == that.cycleStandardName&&deptId == that.deptId&&deptShortName == that.deptShortName&&personLiableInductionRecordId == that.personLiableInductionRecordId&&personLiableUserFace == that.personLiableUserFace&&personLiableIdCardName == that.personLiableIdCardName&&personLiableNickName == that.personLiableNickName&&directorInductionRecordId == that.directorInductionRecordId&&directorUserFace == that.directorUserFace&&directorIdCardName == that.directorIdCardName&&directorNickName == that.directorNickName;
    }
@Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), taskId,taskName,percentageProgress,deflectionTime,totalLength,createTime,stateCode,cycleStandardName,deptId,deptShortName,personLiableInductionRecordId,personLiableUserFace,personLiableIdCardName,personLiableNickName,directorInductionRecordId,directorUserFace,directorIdCardName,directorNickName);
    }

}
